Android  Naive 와 WebView 의 상호 호출 에 대한 자세 한 설명

3973 단어 AndroidNaiveWebView
Android  Naive 와 WebView 의 상호 호출 에 대한 자세 한 설명
Android 의 Naive 프로그램 은 WebView 를 끼 워 넣 을 수 있 고 WebView 와 의 상호작용 을 할 수 있 습 니 다.일반적으로 두 가지 방법 이 있 습 니 다.하 나 는 직접 상호작용 입 니 다.예 를 들 어 Naive 가 WebView 를 직접 호출 하 는 방법 과 WebView 가 Naive 를 직접 호출 하 는 방법 입 니 다.둘째,WebView 는하이퍼링크 탭 을 쓸 수 있 습 니 다.그리고 사용자 가 이 탭 을 클릭 할 때 Naive 는 탭 을 클릭 하 는 이 벤트 를 차단 할 수 있 습 니 다.그러면 우 리 는 링크 에 자신의 협 의 를 한 다음 에 Android 와 iOS 는 이 협의 에 따라 똑 같은 처 리 를 하여 여러 플랫폼 을 통일 할 수 있 습 니 다.네 이브 와 웹 뷰 가 어떻게 서로 호출 되 는 지 연구 해 보 자.    초기 화: mWebView = (WebView) findViewById(R.id.main_wv); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.loadUrl("file:///android_asset/demo.html"); //첫 번 째 는 WebView 에 맡 겨 제어 하 는 대상 이 고,두 번 째 는 제어 하 는 대상 의 변수 명,즉 JS 가 이 대상 을 받 은 후 이 대상 에 이름 을 부여 하면 제어 할 수 있 습 니 다. mWebView.addJavascriptInterface(this, "naive");   1.Naive 에서 JS 를 직접 호출 하 는 방법:  다음은 html 의 JS 방법 입 니 다.  : function alert(){ document.getElement ById("title").innerHTML="Naive 호출 Js 무 참 방법"; }    naive 를 호출 합 니 다.WebView 의 loadUrl 방법 을 호출 합 니 다.방법 에 서 는 String 을 전달 합 니 다.형식 은'javascript:'+'방법 명'+'(변수)입 니 다. public void onJs(View view) { mWebView.loadUrl("javascript:alert()"); }     인자 JS 방법: function alertWith(arg){ document.getElementById("title").innerHTML = arg; }     naive 에서 참조 JS 호출 진행: public void onJsWith(View view) { mWebView.loadUrl("javascript:alertWith('Naive 호출 Js 참조 방법')"); }     2、JS 호출 naive:      로 컬 에서 호출 할 방법 을 먼저 쓰 고,앞 에 주석 을 붙 여야 합 니 다@JavascriptInterface @JavascriptInterface public void toast() { Toast.makeText(this,"JS 가 Naive 의 무 참 방법 을 호출 했 습 니 다",Toast.LENGTHSHORT).show(); }       JS 호출 코드: <input type="button"value="클릭 하여 naive 코드 호출"onclick="window.naive.toast()"/>     로 컬 에서 호출 할 방법 을 작성 하 십시오: @JavascriptInterface public void toastWith(String toast) { Toast.makeText(this, toast, Toast.LENGTH_SHORT).show(); }         js 호출 참조 코드: <input type="button"value="naive 코드 를 호출 하고 인 자 를 전달 하려 면 누 르 십시오" onclick="window.naive.toastWith('JS 가 Naive 의 참조 코드 를 호출 했 습 니 다')"/>다 은 Activity 의 소 코 입 니 다.  public class MainActivity extends AppCompatActivity { private WebView mWebView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mWebView = (WebView) findViewById(R.id.main_wv); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.addJavascriptInterface(this, "naive"); mWebView.loadUrl("file:///android_asset/demo.html"); } public void onJs(View view) { mWebView.loadUrl("javascript:alert()"); } public void onJsWith(View view) { mWebView.loadUrl("javascript:alertWith('Naive 호출 Js 참조 방법')"); } @JavascriptInterface public void toast() { Toast.makeText(this,"JS 가 Naive 의 무 참 방법 을 호출 했 습 니 다",Toast.LENGTHSHORT).show(); } @JavascriptInterface public void toastWith(String toast) { Toast.makeText(this, toast, Toast.LENGTH_SHORT).show(); } } 다음 HTML 코드: <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=gb2312"> <script type="text/javascript"> function alert(){ document.getElement ById("title").innerHTML="Naive 호출 Js 무 참 방법"; } function alertWith(arg){ document.getElementById("title").innerHTML = arg; } </script> </head> <body> <h1 id="title"></h1><br/> <input type="button"value="클릭 하여 naive 코드 호출"onclick="window.naive.toast()"/><br/> <input type="button"value="naive 코드 를 호출 하고 인 자 를 전달 하려 면 누 르 십시오" onclick="window.naive.toastWith('JS 가 Naive 의 참조 코드 를 호출 했 습 니 다')"/> </body> </html> 읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기